/**   
 * @Title: ParamDataService.java 
 * CopyRight(c)2010-DMX 
 */
package com.dmx.fw.service.interfaces;

import java.lang.reflect.InvocationTargetException;
import java.util.List;

import com.dmx.fw.bean.mapping.pojo.ParameterData;
import com.dmx.fw.bean.mapping.pojo.ParameterDescription;
import com.dmx.fw.service.interfaces.Service;

/** 
 * @Description: ParamData Service Interface
 * @author: system
 * @date: 2006
 * @version V1.0 
 * 
 */
public interface ParamDataService extends Service{
	
	/**
	 * @Description 创建ParameterData
	 * @param paramData
	 * @return Long
	 */
	public Long create(ParameterData paramData);

	/**
	 * @Description 根据ID,删除ParameterData
	 * @param paramDataId
	 */
	public void delete(String paramDataId);

	/**
	 * @Description 更新ParameterData
	 * @param paramData
	 */
	public void update(ParameterData paramData);

	/**
	 * @Description 根据ID加载ParameterData
	 * @param paramDataId
	 * @return ParameterData
	 */
	public ParameterData getParamData(String paramDataId);
	
	/**
	 * @Description 根据typeCode和Code加载ParameterData
	 * @param code: data code
	 * @param typeCode: type code
	 * @return ParameterData
	 */
	public ParameterData getParamData(String code,String typeCode);
	
	/**
	 * @Description 判断某一typeCode下name是否唯一
	 * @param typeCode
	 * @param name
	 * @param parmDataId
	 * @return boolean
	 */
	public boolean nameUniqueCheck(final String typeCode,final String name,final long parmDataId);
	
	/**
	 * @Description 判断某一typeCode下code,name是否唯一
	 * @param typeCode
	 * @param name
	 * @param parmDataId
	 * @return boolean
	 */
	public boolean uniqueCheck(final String typeCode,final String code,final String name);
	
	/**
	 * @Description 根据typeCode获得ParameterDescription
	 * @param typeCode
	 * @return ParameterDescription
	 */
	public ParameterDescription getParmDescByCode(String typeCode);
	
	/**
	 * 
	 * <p>Description: 刷新缓存 </p>
	 * @param typeCode  
	 * @return void  
	 * @exception
	 */
	public void flushCache(String typeCode);

}
